#!/bin/bash

# 储能模拟数据服务停止脚本

PID_FILE="logs/app.pid"

if [ ! -f "$PID_FILE" ]; then
    echo "PID文件不存在，服务可能没有运行"
    exit 1
fi

PID=$(cat "$PID_FILE")

if ! ps -p $PID > /dev/null 2>&1; then
    echo "进程 $PID 不存在，清理PID文件"
    rm -f "$PID_FILE"
    exit 0
fi

echo "正在停止储能模拟数据服务 (PID: $PID)..."

# 优雅停止
kill $PID

# 等待进程结束
for i in {1..30}; do
    if ! ps -p $PID > /dev/null 2>&1; then
        echo "服务已停止"
        rm -f "$PID_FILE"
        exit 0
    fi
    echo "等待进程结束... ($i/30)"
    sleep 1
done

# 强制停止
echo "优雅停止失败，强制停止进程..."
kill -9 $PID

if ps -p $PID > /dev/null 2>&1; then
    echo "无法停止进程 $PID"
    exit 1
else
    echo "服务已强制停止"
    rm -f "$PID_FILE"
fi
